Skip to main content

Ejemplo 01 de CNC: Generación de OutQueue directamente

Ver el CNC01_direct.project proyecto de ejemplo en el directorio de instalación de CODESYS bajo ..\CODESYS SoftMotion\Examples.

Este ejemplo muestra un programa CNC con dos ejes. Se abordan cuatro posiciones en el plano X/Y con una velocidad y aceleración definidas. El programa establece dos puntos de cambio de ruta en la ruta. El programa se escribe directamente en una estructura de datos usando el SMC_OutQueue modo de compilación.

Crear un programa NC en el editor CNC

  1. Crear un CNCdirect proyecto con un SoftMotion controlador.

  2. Insertar un Programa CNC objeto nombrado Example.

    Selecciona el ImplementaciónDin66025 y el Modo de compilaciónSMC_OutQueue.

  3. Especifique los siguientes bloques de movimiento:

    Editor CNC:

    _sm_img_example_cnc1_1.png

Creación de una interfaz de accionamiento y configuración de PLC

Defina una estructura de accionamiento con dos accionamientos lineales de la siguiente manera:

  1. Inserte dos unidades virtuales X_Drive y Y_Drive bajo el Piscina de eje general SoftMotion.

  2. Selecciona el Tipo de eje parámetro a Finite (1).

    Editor de configuración:

    _sm_img_example_cnc1_7.png

Crear un programa IEC

  1. Agregar un nuevo programa de CFC Ipo a la aplicación y configurar una tarea cíclica con un intervalo de 3 ms.

  2. Active la unidad con el MC_Power bloque de funciones

    POU:

    _sm_img_example_cnc1_2.png
  3. Introduzca el SMC_Interpolator POU. El bloque de funciones convierte una ruta definida por objetos GEOINFO en puntos de ruta discretos. El bloque de función recibe la dirección del programa CNC creado en la entrada poqDataIn. Luego, el tiempo de ciclo de la tarea IEC debe escribirse en la entrada dwIpoTime. Puede especificar estos como valores constantes en la entrada dwIpoTime o puedes usar la variable dwCycle de la estructura del grupo de ejes desde la configuración del PLC. La ventaja de esto es que el tiempo correcto se usa automáticamente como entrada del interpolador cuando cambia el tiempo de ciclo de la tarea.

    POU:

    _sm_img_example_cnc1_3.png
  4. En este ejemplo, se controlará un sistema de pórtico. Para este propósito, inserte una instancia de los bloques de función de transformación inversa y directa de la SM_Trafo Biblioteca. El bloque de función de transformación directa contiene los variadores como entradas. El bloque de función de transformación inversa debe contener la posición establecida del interpolador. La transformación hacia adelante en el ejemplo es necesaria solo para la visualización.

    Instancia de bloque de función:

    _sm_img_example_cnc1_4.png
    _sm_img_example_cnc1_5.png
  5. Las salidas del bloque de funciones (las coordenadas del eje) deben escribirse en los accionamientos. Esto se hace con el SMC_ControlAxisByPos bloque de funciones. Debido a que la aplicación no garantiza que las salidas del interpolador sean constantes (p. Ej., La ruta termina en un punto distinto de donde comenzó), active la evitación de espacios (bAvoidGaps, fGapVelocity, fGapAcceleration, fGapDeceleration). Luego conecta el StopIpo salida a la bEmergency_Stop entrada del interpolador y conectar la salida del interpolador iStatus a las respectivas entradas de los bloques de función de control de ejes.

    Tenga en cuenta el orden correcto de los bloques de función al programar con CFC.

    CFC:

    _sm_img_example_cnc1_6.png

Creación de una interfaz operativa y una interfaz de prueba

Vincula dos objetos de visualización a una nueva visualización: la plantilla del interpolador y la plantilla de la transformación. Debe utilizar marcadores de posición para vincularlos a las respectivas instancias del bloque de funciones (aquí: Ipo.smci y Ipo.trafof).

Puesta en servicio

Compile e inicie el programa creado. El programa ejecuta el movimiento del CNC tan pronto como Execute se ha configurado la entrada del interpolador. Una vez que el programa se haya ejecutado por completo, puede reiniciarlo mediante un nuevo flanco ascendente.

Tenga en cuenta la función de los conmutadores de ruta que también se muestran en la visualización del bloque de función de interpolación.